# -*- coding: utf-8 -*-
"""
@Time    : 2024/9/12 18:58 
@Author  : ZhangShenao 
@File    : 1.类的定义与使用.py
@Desc    : 1.类的定义与使用

通过class关键字,定义一个类

定义在类中的函数,通常称为(对象的)方法
这些方法就是对象可以接收的消息
"""


# 定义类
class Student:
    """学生类"""

    # 定义构造方法
    def __init__(self, name: str, age: int):
        """
        构造方法
        构造函数是一个特殊的方法,用于在创建对象时进行初始化操作
        在创建对象时,Python解释器会自动调用类的__init__方法
        :param name: 姓名
        :param age: 年龄
        """

        # 初始化name和age两个属性
        self.name = name
        self.age = age

    # 定义普通方法
    def study(self, course: str) -> None:
        """
        学习
        :param course: 课程名称
        """
        print(f"{self.name}正在学习{course}课程")

    # 定义普通方法
    def drink(self) -> None:
        """
        喝酒
        """
        if self.age >= 18:
            print("你已经是成年人了，喝酒是你的自由")
        else:
            print("未成年人禁止饮酒哦")


if __name__ == '__main__':
    # 创建对象
    zsa = Student(name="zsa", age=20)

    # 调用对象的方法
    zsa.study("Python编程")
    zsa.drink()
